#ifndef UDK_TYPES_H
#define UDK_TYPES_H

#if defined(__cplusplus)
#define __BEGIN_DECLS           extern "C" {
#define __END_DECLS             }
#define __static_cast(x,y)      static_cast<x>(y)
#else
#define __BEGIN_DECLS
#define __END_DECLS
#define __static_cast(x,y)      (x)y
#endif

typedef void* UDK_HANDLE;
typedef void* UDK_HMODULE;
typedef void* UDK_PVOID;
typedef void* UDK_CONTEXT;
typedef unsigned char UDK_U8;
typedef unsigned short UDK_U16;
typedef unsigned int UDK_U32;
typedef unsigned long UDK_ULONG;
typedef unsigned long long UDK_U64;
typedef char UDK_S8;
typedef short UDK_S16;
typedef int UDK_S32;
typedef long long UDK_S64;
typedef int UDK_BOOL;
typedef long UDK_LONG;
typedef unsigned short UDK_WORD;
typedef unsigned long UDK_DWORD;

#define UDK_VALID_HANDLE(h) (h!=NULL)
#define UDK_TRUE (1==1)
#define UDK_FALSE (!UDK_TRUE)

typedef void (*UDK_CALLBACK)(void* user,int param);

#endif
